Web services and web applications include software systems that support machine-to-machine interaction over a network. For example, a web service or web application may comprise one or more application programming interfaces (APIs) that can be accessed over a network and executed on a remote system hosting the requested service or application. Typically, available functionality is specified in an API and corresponding documentation for use in invoking the web service. For instance, some web services may be defined using the Web Application Description Language (WADL), which is an XML-based format that describes services in a machine-processable way and/or the Web Service Description Language (WSDL), which is an XML format for describing web services, such as by defining ports and messages.
Development of a web service or web application can raise logistical challenges. For example, the web service/application may be developed to include a software development kit (SDK) for clients that includes detailed reference documentation, client libraries for invoking the web service/application in target languages, and sample applications/code. This effort may be difficult to coordinate among multiple parties responsible for various aspects of the project.
As an example, in some existing development workflows, technical writers are not permitted direct access to WADL or WSDL data. Instead, they may deal indirectly with data that is difficult to edit and which may be out of date. Furthermore, there may be some delay between when the technical writer makes a contribution and when the changes to the SDK can be seen by the writer. Similar issues may occur for other personnel, such as software engineers wishing to add or update an API.